home *** CD-ROM | disk | FTP | other *** search
/ I Segreti Di Madame X / I Segreti Di Madame X.iso / setup.mst < prev    next >
Text File  |  1995-06-05  |  9KB  |  249 lines

  1. '$INCLUDE 'setupapi.inc'
  2. '$INCLUDE 'msdetect.inc'
  3.  
  4. CONST WELCOME        = 100
  5. CONST ASKQUIT        = 200
  6. CONST DESTPATH        = 300
  7. CONST EXITFAILURE    = 400
  8. CONST EXITQUIT        = 600
  9. CONST BADPATH        = 6400
  10. CONST EXITSUCCESS    = 700
  11. CONST OPTIONS        = 800
  12. CONST APPHELP        = 900
  13. CONST VFWDIALOG         = 1000
  14. CONST SMALLWIN        = 2200
  15. CONST RESTART           = 2600
  16. CONST RESTARTII         = 2700
  17.  
  18. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  19. DECLARE FUNCTION OnWindowsNT LIB "INIUPD.DLL" AS INTEGER
  20. DECLARE FUNCTION VflatdPresent LIB "iniupd.DLL" AS INTEGER
  21. DECLARE fUNCTION ExitWindowsExec  LIB "User" (Exec$, Param$) AS INTEGER
  22. DECLARE SUB Reboot LIB "iniupd.dll"
  23.  
  24. INIT:
  25.     CUIDLL$    = "mscuistf.dll"
  26.     DEST$      = "C:\DIGIDREM"
  27.     GROUP$     = "Interactive DigiDreams"
  28.     ITEM$      = "I Segreti di Madame X"
  29.         PROG$      = "dreamspl.exe"
  30.         PROGINI$   = "dreamspl.ini"
  31.         ININAME$   = "madx.scr"
  32.         INICRC$    = "3637227506"
  33.         MajorVer%  = GetWindowsMajorVersion()
  34.         MinorVer%  = GetWindowsMinorVersion()
  35.         Processor% = GetProcessorType()
  36.  
  37.     IF MajorVer% < 3 OR (MajorVer% = 3 AND MinorVer% < 10) THEN
  38.         i% = DoMsgBox ("E' richiesto Microsoft Windows versione 3.10 o superiore per questo software. Aggiornate la vostra versione di Windows.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  39.         END
  40.     END IF
  41.  
  42.     'Prevents installation on 286
  43.     IF Processor% < 3 THEN
  44.         i% = DoMsgBox ("Video per Windows richiede un processore 386 o superiore.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  45.         END
  46.     END IF
  47.  
  48.     ' Use Wowexec to determine version of NT.  3.1 did not stamp wowexec and wow returns 3.1 as version
  49.     IF OnWindowsNT() THEN
  50.         OnNT$ = "TRUE"
  51.         WowVersion$ = GetVersionOfFile(WinSys32Dir$ + "\wowexec.exe")
  52.         IF WowVersion$ = "" THEN
  53.             i% = DoMsgBox ("Video per Windows non funziona con Windows NT 3.1. Per favore aggiornate la vostra versione di Windows NT.", "Problemi di Installazione", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  54.             END
  55.         END IF
  56.     END IF
  57.  
  58.         SetBitmap CUIDLL$, 1
  59.         SetTitle "Installazione di Interactive DigiDreams"
  60.  
  61. WELCOME:
  62.     '' Visualizza una dialog di benvenuto
  63.     sz$ = UIStartDlg (CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  64.     IF sz$ = "CONTINUE" THEN
  65.         UIPop 1
  66.     ELSE
  67.         UIPop 1
  68.         GOSUB ASKQUIT
  69.         GOTO WELCOME
  70.     ENDIF
  71.  
  72. DESTPATH:
  73.     '' Chiede il nome della directory in cui copiare tutti i files del programma
  74.     SetSymbolValue "EditTextIn", DEST$
  75.     sz$ = UIStartDlg (CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  76.     IF sz$ = "CONTINUE" THEN
  77.                DEST$ = GetSymbolValue( "EditTextOut")
  78.         UIPop 1
  79.     ELSE
  80.         UIPop 1
  81.         GOSUB ASKQUIT
  82.         GOTO DESTPATH
  83.     ENDIF
  84.  
  85.     IF IsDirWritable (DEST$) = 0 THEN
  86.         GOSUB BADPATH
  87.         GOTO DESTPATH
  88.     END IF
  89.  
  90. ASKVFW:
  91.         sz$ = UIStartDlg (CUIDLL$, VFWDIALOG, "FInfoDlgProc", APPHELP, HELPPROC$)
  92.     IF sz$ = "CONTINUE" THEN
  93.         VFW$ = "TRUE"
  94.     END IF
  95.         UIPop 1
  96.  
  97. INSTALL:
  98.     WinDir$ = GetWindowsDir ()
  99.         WinSysDir$ = GetWindowsSysDir ()
  100.     SrcDir$ = GetSymbolValue ("STF_SRCDIR")
  101.         VfwSrc$ = GetSymbolValue ("STF_SRCDIR")
  102.  
  103.     CreateDir DEST$, cmoNone
  104.  
  105.         ReadInfFile MakePath (SrcDir$, "SETUP.INF")
  106.     AddSectionFilesToCopyList "CDROM", SrcDir$, DEST$
  107.  
  108.     IF VFW$ = "TRUE" THEN
  109.                 IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN                       'These files not necessary on Windows NT
  110.                         AddSectionFilesToCopyList "MPlayer", VfwSrc$, WinDir$
  111.                         AddSectionFilesToCopyList "OLE2", VfwSrc$, WinSysDir$
  112.                 END IF
  113.                 AddSectionFilesToCopyList "VfW Runtime", VfwSrc$, WinSysDir$
  114.                 AddSectionFilesToCopyList "ACM Drivers", VfwSrc$, WinSysDir$
  115.                 AddSectionFilesToCopyList "AVICodecs", VfwSrc$, WinSysDir$
  116.                 IF OnNT$ = "TRUE" THEN
  117.                         AddSectionFilesToCopyList "NT MSVideo", VfwSrc$, WinSys32Dir$
  118.                 ENDIF
  119.     END IF
  120.  
  121.     SizeReq& = GetCopyListCost ("","", "")
  122.     IF SizeReq& <> 0 THEN
  123.         GOSUB SMALLWIN
  124.         END
  125.     END IF
  126.  
  127.         SetRestartDir GetWindowsDir()
  128.     CopyFilesInCopyList
  129.  
  130.     IF VFW$ = "TRUE" THEN
  131.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  132.             IF VflatdPresent() = 0 THEN
  133.                 CreateSysIniKeyValue WinDir$ + "system.ini", "386Enh", "device", "dva.386", cmoOverwrite
  134.             END IF
  135.         END IF
  136.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.CVID", "iccvid.drv", cmoOverwrite
  137.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MSVC", "msvidc.drv", cmoOverwrite
  138.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV32", "ir32.dll", cmoOverwrite
  139.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.IV31", "IR32.dll", cmoOverwrite
  140.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.MRLE", "MSRLE.drv", cmoOverwrite
  141.         I% = DoesIniKeyExist ("system.ini", "Drivers", "VIDC.RT21")
  142.         IF I% = 0  THEN
  143.             CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.RT21", "ir21_r.dll", cmoOverwrite
  144.         END IF
  145.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "VIDC.YVU9", "ir21_r.dll", cmoOverwrite
  146.         CreateIniKeyValue WinDir$ + "WIN.INI", "mci extensions", "avi", "AVIVideo", cmoOverwrite
  147.         CreateIniKeyValue WinDir$ + "system.ini", "mci", "AVIVideo", "mciavi.drv", cmoOverwrite
  148.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "WaveMapper", "msacm.drv", cmoOverwrite
  149.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.msadpcm", "msadpcm.acm", cmoOverwrite
  150.         CreateIniKeyValue WinDir$ + "system.ini", "Drivers", "MSACM.imaadpcm", "imaadpcm.acm", cmoOverwrite
  151.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msacm.drv", "Microsoft Sound Mapper V2.00", cmoOverwrite
  152.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "msadpcm.acm", "Microsoft ADPCM Codec V2.00", cmoOverwrite
  153.         CreateIniKeyValue WinDir$ + "control.ini", "drivers.desc", "imaadpcm.acm", "Microsoft IMA ADPCM Codec V2.00", cmoOverwrite
  154.  
  155.         IF ((NOT OnNT$ = "TRUE") AND MinorVer% < 50) THEN
  156.             Run ("regedit.exe /s " + MakePath(WinDir$, "mplayer.reg"))
  157.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "OLE2.reg"))
  158.             Run ("regedit.exe /s " + MakePath(WinSysDir$, "cleanup.reg"))
  159.  
  160.             CreateProgmanItem "Accessories", "Media Player", MakePath(WinDir$, "mplayer.exe"), "", cmoOverwrite
  161.         END IF
  162.  
  163. ''                Run ("profdisp.exe")
  164.         END IF
  165.  
  166.         Ini$ = MakePath (DEST$, PROGINI$)
  167.         CreateIniKeyValue Ini$, "System", "CurCDDrive", MID$ (SrcDir$, 1, 2), cmoOverwrite
  168.  
  169.         AppIni$ = MakePath (DEST$, ININAME$)
  170.  
  171.         CreateProgmanGroup GROUP$, "", cmoNone
  172.         ShowProgmanGroup  GROUP$, 1, cmoNone
  173.         CreateProgmanItem GROUP$, ITEM$, MakePath (DEST$, PROG$ + " " + AppIni$ + " " + INICRC$), "", cmoOverwrite
  174.  
  175.         IF VFW$ = "TRUE" THEN
  176.                 '' Restart Windows: if it has to updates ACM from DOS, it restarts Windows automatically
  177.         '' else, it gives the user the choice
  178.         RESTRT% = RestartListEmpty ()
  179.         Exe$ = DEST$ + "\_msrstrt.exe"
  180.         Batch$ = DEST$ + "\_mssetup.bat"
  181.         empty$ = ""
  182. RESTART:
  183.                 sz$ = UIStartDlg(CUIDLL$, RESTARTII, "FQuitDlgProc", 0, "")
  184.                 IF sz$ = "CONTINUE" THEN
  185.                         I% = ExitWindowsExec (Exe$, empty$)
  186.                         IF I% = 0 THEN
  187.                                 GOTO RESTART
  188.                         ELSE
  189.                                 END
  190.                         ENDIF
  191.                 ELSEIF sz$ = "EXIT" THEN
  192.                         UIPopAll
  193.                         END
  194.                 ELSEIF sz$ = "REACTIVATE" THEN
  195.                         GOTO RESTART
  196.                 ELSE
  197.                         UIPop 1
  198.                 END IF
  199.         ELSE
  200.                 sz$ = UIStartDlg (CUIDLL$, EXITSUCCESS, "FInfo0DlgProc", 0, "")
  201.                 UIPop 1
  202.         END IF
  203.  
  204.     END
  205.  
  206. ASKQUIT:
  207.     sz$ = UIStartDlg (CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  208.  
  209.     IF sz$ = "EXIT" THEN
  210.         UIPopAll
  211.         ERROR STFQUIT
  212.     ELSEIF sz$ = "REACTIVATE" THEN
  213.         GOTO ASKQUIT
  214.     ELSE
  215.         UIPop 1
  216.     END IF
  217.     RETURN
  218.  
  219. BADPATH:
  220.     UIPop 1
  221.     sz$ = UIStartDlg (CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  222.     IF sz$ = "REACTIVATE" THEN
  223.         GOTO BADPATH
  224.     END IF
  225.     UIPop 1
  226.     RETURN
  227.  
  228. SMALLWIN:
  229.     sz$ = UIStartDlg(CUIDLL$, SMALLWIN, "FInfo0DlgProc", 0, "")
  230.     IF sz$ = "REACTIVATE" THEN
  231.         GOTO SMALLWIN
  232.     END IF
  233.     UIPop 1
  234.     RETURN
  235.  
  236. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  237.     IF szDir$ = "" THEN
  238.         MakePath = szFile$
  239.     ELSEIF szFile$ = "" THEN
  240.         MakePath = szDir$
  241.     ELSEIF MID$ (szDir$, LEN (szDir$), 1) = "\" THEN
  242.         MakePath = szDir$+szFile$
  243.     ELSE
  244.         MakePath = szDir$+"\"+szFile$
  245.     END IF
  246. END FUNCTION
  247.  
  248. QUIT:
  249.